package com.ctg.itrdc.imageconsole.service;

import com.ctg.itrdc.imageconsole.data.entity.DockerImage;

/**
 * 
 * @Description 
 * @author <a href="mailto:18070514058@163.com">Piao.Wu</a>
 * @Data 2016年5月27日
 * @Version 1.0.0
 */
public interface IIndexService {
	
	/**
	 * 初始化私库服务队列
	 */
	public void initServerQueue();

	/**
	 * 获取pull操作时可用的服务地址
	 * @param imageName 包括镜像名称和版本号
	 * @return
	 */
	public String getPullServerAddr(String imageName);
	
	/**
	 * 获取push操作时可用的服务地址
	 * @param imageName 包括镜像名称和版本号
	 * @return
	 */
	public String getPushServerAddr(String imageName);
	
	 /**
     * 
     * @Description: push操作后将数据保存到数据库中
     * @author Piao.Wu 2016年9月25日 下午2:59:02
     * @param ipAndPort ip和端口号
     * @param tenantCode 租户编码
     * @param imageName 镜像名称（包括版本号）
     * @param dockerfile 镜像构建时的dockerfile
     * @return 
     * String
     *
     */
	public String saveInfoAfterPush(String ipAndPort,String tenantCode,String imageName,String dockerfile); 
	
	/**
	 * 根据节点端口和ip找到表docker_pserver对应记录，并加以更新容量（volume）
	 * @param ipAndPort
	 * @param volume
	 * @return 0代表成功，-1代表失败
	 */
	int updatePserverVolume(String ip, String port, Double volume);

	/**
	 * 根据分组规则自动将镜像文件分到各镜像分组
	 * @param imageFile
	 */
	void groupImageFileByRule(DockerImage imageFile);
	
}
